#ifndef LOG_H_
#define LOG_H_

#include <my_header.h>
#include <pthread.h>
#include <stdarg.h>
typedef enum LogLevel
{
    PROJECT_LOG_DEBUG,   // 0（低级别）
    PROJECT_LOG_INFO,    // 1
    PROJECT_LOG_WARNING, // 2
    PROJECT_LOG_ERROR    // 3（高级别）
} LogLevel;

// 快捷INFO日志宏（自动附加文件行号）
#define PLOG(fmt, ...) logRecordLevel(PROJECT_LOG_INFO, fmt, ##__VA_ARGS__)

void logRecordLevel(LogLevel level, const char *fmt, ...);

// 全局变量声明（外部可见）
extern FILE *log_fp;
extern pthread_mutex_t log_mutex;

// 函数声明
void logRecordLevel(LogLevel level, const char *fmt, ...);

// 打开log文件，并设置最高记录等级
int logInit(LogLevel maxLevel, const char *filename);

// 关闭log
void logClose();
#endif
